import { get, post } from "@/api/request";

/**
 * 消息通知 / 消息通知添加
 * @param {object} data
 * @param {string} [data.content] 内容
 * @param {number} [data.createUserId] 消息创建用户ID
 * @param {string} [data.title] 标题
 * @param {string} [data.type] 消息类型 可选值: ANNOUNCEMENT
 * @param {number} [data.userId] 用户ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<Notify页面展示实体>}
 */
export function managementNotifyAdd(data, config) {
  return post("/management/notify/add", data, config);
}

/**
 * 消息通知 / 消息通知删除
 * @param {object} data
 * @param {number} data.id id
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<number>}
 */
export function managementNotifyDelete(data, config) {
  return post("/management/notify/delete", data, config);
}

/**
 * 消息通知 / 消息通知查询详情
 * @param {object} params
 * @param {number} params.id id
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<Notify页面展示实体>}
 */
export function managementNotifyDetail(params, config) {
  return get("/management/notify/detail", params, config);
}

/**
 * 消息通知 / 消息通知分页查询
 * @param {object} data
 * @param {string} [data.content] 消息内容
 * @param {number} [data.id] 主键
 * @param {boolean} [data.isRead] 是否已读
 * @param {number} [data.length] 分页大小
 * @param {number} [data.orderAsc] 排序方向
 * @param {string} [data.orderColum] 排序字段
 * @param {number} [data.pageIndex] 分页下标
 * @param {number} [data.start] 查询记录起始下标
 * @param {string} [data.type] 消息类型 可选值: ANNOUNCEMENT
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<Notify页面展示实体>}
 */
export function managementNotifyList(data, config) {
  return post("/management/notify/list", data, config);
}

/**
 * 消息通知 / 消息通知获取未读数
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<number>}
 */
export function managementNotifyNotRead(config) {
  return get("/management/notify/notRead", config);
}

/**
 * 消息通知 / 消息通知更新
 * @param {object} data
 * @param {string} [data.content] 内容
 * @param {number} [data.createUserId] 消息创建用户ID
 * @param {string} [data.title] 标题
 * @param {string} [data.type] 消息类型 可选值: ANNOUNCEMENT
 * @param {number} [data.userId] 用户ID
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<number>}
 */
export function managementNotifyUpdate(data, config) {
  return post("/management/notify/update", data, config);
}

/**
 * 消息通知 / 消息通知批量已阅
 * @param {object} data
 * @param {array<number>} data.list list
 * @param {import("axios").AxiosRequestConfig} [config]
 * @returns {Promise<number>}
 */
export function managementNotifyUpdateRead(data, config) {
  return post("/management/notify/updateRead", data, config);
}

/**
 * @typedef {object} Notify页面展示实体 页面展示实体
 * @property {string} auditStatus 审核状态 可选值: APPROVED, NOT_SUBMITTED, REVIEW_REJECTION, UNDER_REVIEW
 * @property {string} content 内容
 * @property {string} createTime 创建时间
 * @property {number} createUserId 消息创建用户ID
 * @property {boolean} delFlag 删除标识(false:否, true:是)
 * @property {number} id 主键
 * @property {boolean} isRead 已读状态
 * @property {string} readTime 阅读时间
 * @property {string} realName 用户姓名
 * @property {string} title 标题
 * @property {string} type 消息类型 可选值: ANNOUNCEMENT
 * @property {number} userId 用户ID
 * @description 页面展示实体
 */
